1. Field of the Invention
The present invention generally relates to data processing systems utilizing a relational database and, more particularly to the automatic initiation or spawning of tasks within such systems.
2. Description of the Prior Art
The basic attribute of the stored program computer is the ability, by virtue of its stored program, to execute a large and potentially complex series of operations largely independent of operator intervention. Even where the applications program, such as a word processor, is continuously interacting with the operator or user, many other groups of operations within the application, such as network control or page formatting may be performed, often with complete transparency to the user. For example, timed back-ups of documents are automatically initiated upon the lapsing of a predetermined and often user-definable period of time. While the timed back-up of a file during composition is not entirely transparent to the user due to the time required for disk access, many operations within that operation, such as the assignment of tracks and sectors of storage and linking of the addresses thereof to accommodate the file size, occur without any indication to the operator and at such high speed that the operator is not aware of them.
It is well-understood that the functioning of a computer relies on many operations which are specified in sequence and stored and which are collectively referred to as a program. Each of these operations is defined by a statement which must rigidly comply with a predetermined form. The program must similarly be invoked by a command stated in a form which is also rigidly defined. Such commands can be entered by an operator or as part of another program. In the latter case, the program invoked by a command supplied by another program is often referred to as a subroutine of that program.
Operator-generated commands may also be supplied to the computer by embedding them in other files, such as text files. For example, a predetermined combination of characters at a specific location in a document such as electronic mail (e-mail) may be sensed by a computer during recall from memory in order to generate an acknowledgement message, commonly referred to as a confirmation of delivery (COD) message. However, these commands must also be in rigidly defined form which implies that the file in which they are inserted must also be of rigidly defined form and must be accessed in a consistent manner. In networks supporting the transmission of e-mail, therefore, the storage and access protocols are supplied by articulating the storage (which may be a distributed resource) into so-called mini-disks which simulate local disk storage. The same access rules are defined for and apply to all files stored on the mini-disk.
In recent years, so-called relational databases have been developed and are in increasing use because of the flexibility which they provide. Relational databases also provide for increased access speed since groupings of items (not necessarily as "files") in accordance with user-defined "relationships" provide for a reduction of search for a document called. More specifically, a relational database provides for specification of access rules (e.g. addresses, access authorizations, data compression and conversion rules, storage format, etc.) for every item it contains. This flexibility also provides for storage of many disparate forms of information such as text files and digitized video image or audio data. Storage capacity is also increased over the system since access rules allow for the access to an item by specified users rather than requiring storage of a file in the mini-disk of each user which is to have access thereto.
However, as an incident of this flexibility provided by relational databases, there is no longer a standard form of a stored item and the embedding of commands cannot be supported. At the same time, the flexibility of relational databases allows more types of data to be stored and greater variety of application programs to interact with them. Therefore, the need for memory maintenance functions and other automatic commands for tasks which may be invoked and executed with possible transparency to the operator is increased although there is no currently available mechanism to satisfy this need.
For example, if an office system capable of supporting e-mail were to be designed using a relational database instead of mini-disks, transmitted e-mail would probably be merely added to the relational database. In a conventional e-mail system, the fact of storage on a particular mini-disk associated with a user could be sensed in order to generate a message notifying the user of the receipt of e-mail. This is possible because of the association of the mini-disk with the user and the consistent access rules for all files on a given mini-disk. It should also be noted in this regard that if the e-mail message were to be sent to a plurality of users, it would be stored a like plurality of times; one copy being stored on each desired user mini-disk, as noted above.
In contrast, a relational database would store only one copy of an item and assign access rules to provide for access only by the desired users. Because of this form of storage, there is no available mechanism for initiating even such a simple task as notifying the intended recipient that the e-mail message has arrived and is accessible to the user. Also, since the message is not accessed in a necessarily consistent manner by different users, there is no consistent source of information regarding the access to support, for example, the generation of COD messages. The only presently available solution to this problem is for the recipient to continually or periodically poll the relational database for the existence of new e-mail messages or other items to which the user may have access. Polling in this manner represents significantly large computing overhead even for a single user. Such polling requires accessing of addresses of all items of the relational database corresponding to a user which is a severe burden on the system memory controller. For large networks with many users a significant fraction of the computing power and memory access time of the system would be required, particularly if polling is performed rapidly in order to more promptly inform the user. Further, polling operations are seldom performed automatically since it is undesirable that operations requiring such computing overhead be carried out other than under the direct supervision of an operator. By the same token, such polling is operationally inconsistent with the running of other applications by the user since the application must be interrupted to inform the user of the result of the polling unless such notification is deferred, thereby negating the benefit of rapid polling. If polling is performed slowly in an effort to reduce computing overhead, the delay in notification of the user of polling results may also represent a substantial inconvenience to the user. However, the provision of slow polling as a system function would allow no flexibility to the user in regard to the speed with which polling results are provided.